home *** CD-ROM | disk | FTP | other *** search
/ MIDICraft's MIDINET CD-ROM / MIDICraft's MIDINET CD-ROM.iso / DOCS / IRCAM / MIDISPEC.ZIP / MIDI-SPE.TXT
Encoding:
Internet Message Format  |  1990-09-28  |  23.9 KB

  1. From mf Mon Sep 24 21:20:06 1990
  2. Received: by nadia.ircam.fr, Mon, 24 Sep 90 22:20:02 GMT
  3. Date: Mon, 24 Sep 90 22:20:02 GMT
  4. From: Michel Fingerhut <Michel.Fingerhut@ircam.fr>
  5. Message-Id: <9009242220.AA21452@nadia.ircam.fr>
  6. To: mf@nadia
  7. Status: RO
  8. Path: ircam!inria!mcsun!uunet!aplcen!news
  9. From: gwe@aplvax.jhuapl.edu (Garry Elliott)
  10. Newsgroups: comp.music
  11. Subject: MIDI 1.0 Spec
  12. Keywords: MIDI Spec
  13. Message-ID: <6636@aplcen.apl.jhu.edu>
  14. Date: 24 Sep 90 16:24:27 GMT
  15. Sender: news@aplcen.apl.jhu.edu
  16. Reply-To: gwe@aplvax.jhuapl.edu (Garry Elliott)
  17. Organization: Johns Hopkins University Applied Physics Lab
  18. Lines: 662
  19. Nntp-Posting-Host: std-gwe-mac.jhuapl.edu
  20.  
  21.  
  22.  There have been two requests in the last week for the MIDI 1.0 Spec., one
  23. from Holland and the other from Western Australia (both places I'd love to
  24. visit).  I am not an expert on MIDI but I do have a copy of the spec, reprocuded
  25. below.  I hope that this is what you are looking for.
  26. --------------------------------------------------------------------
  27.  
  28.  (Call IMA and order your copy of this
  29.   specification, which offers
  30.   additional information NOT contained in
  31.   this file, to include important
  32.   diagrams and graphs,...etc.)
  33.  
  34.  
  35. MIDI
  36. MUSICAL INSTRUMENT DIGITAL INTERFACE
  37.  
  38. Specification 1.0
  39. INTRODUCTION
  40.  
  41. MIDI is the acronym for Musical Instrument Digital Interface.
  42.  
  43. MIDI enables synthesizers, sequencers, home computers, rhythm machines, etc.
  44. to be intercon- nected through a standard interface.
  45.  
  46. Each MIDI-equipped instrument usually contains a receiver and a transmitter.
  47. Some instruments may contain only a receiver or transmitter.  The receiver
  48. receives messages in MIDI format and executes MIDI commands.  It consists of an
  49. optoisolator, Universal Asynchronous Receiver/Transmitter (UART), and other
  50. hardware needed to perform the intended functions.  The transmitter originates
  51. messages in MIDI format, and transmits them by way of a UART and line driver.
  52.  
  53. The MIDI standard hardware and data format are defined in this specification.
  54.  
  55.  
  56. CONVENTIONS
  57.  
  58. Status and Data bytes given in Tables I through VI are given in binary.
  59.  
  60. Numbers followed by an "H" are in hexadecimal.
  61.  
  62. All other numbers are in decimal.
  63.  
  64.  
  65. HARDWARE
  66.  
  67. The interface operates at 31.25 (+/- 1%) Kbaud, asynchronous, with a start
  68. bit, 8 data bits (D0 to D7), and a stop bit.  This makes a total of 10 bits for
  69. a period of 320 microseconds per serial byte.
  70.  
  71. Circuit: 5 mA current loop type.  Logical 0 is current ON.  One output shall
  72. drive one and only one input.  The receiver shall be opto-isolated and require
  73. less than 5 mA to turn on.  Sharp PC-900 and HP 6N138 optoisolators have been
  74. found acceptable.  Other high-speed optoisolators may be satisfactory.  Rise
  75. and fall times should be less than 2 microseconds.
  76.  
  77. Connectors: DIN 5 pin (180 degree) female panel mount receptacle.  An example
  78. is the SWITCHCRAFT 57 GB5F.  The connectors shall be labelled "MIDI IN" and
  79. "MIDI OUT".  Note that pins 1 and 3 are not used, and should be left
  80. unconnected in the receiver and transmitter.
  81.  
  82. NOTES:
  83.  
  84. 1. Optoisolator is Sharp PC-900.
  85.      (HP 6N138 or other optoisolator can be used with appropriate changes.)
  86.  
  87. 2. Gates "A" are IC or transistor.
  88.  
  89. 3. Resistors are 5%
  90.  
  91.  
  92. Cables shall have a maximum length of fifty feet (15 meters), and shall be
  93. terminated on each end by a corresponding 5-pin DIN male plug, such as the
  94. SWITCHCRAFT 05GM5M.  The cable shall be shielded twisted pair, with the shield
  95. connected to pin 2 at both ends.
  96.  
  97. A "MIDI THRU" output may be provided if needed, which provides a direct copy
  98. of data coming in MIDI IN.  For very long chain lengths (more than three
  99. instruments), higher-speed optoisolators must be used to avoid additive
  100. rise/fall time errors which affect pulse width duty cycle.
  101.  
  102.  
  103. DATA FORMAT
  104.  
  105. All MIDI communication is acheived through multi-byte "messages" consisting of
  106. one Status byte followed by one or two Data bytes, except Real-Time and
  107. Exclusive messages (see below).
  108.  
  109. MESSAGE TYPES
  110.  
  111. Messages are divided into two main categories: Channel and System.
  112.  
  113. Channel
  114.  
  115. Channel messages contain a four-bit number in the Status byte which address
  116. the message specifically to one of sixteen channels.  These messages are
  117. thereby intended for any units in a system whose channel number matches the
  118. channel number encoded into the Status byte.
  119.  
  120. There are two types of Channel messages: Voice and Mode.
  121.  
  122.         Voice
  123.         To control the instrument's voices, Voice messages are sent
  124.         over the Voice Channels.
  125.  
  126.         Mode
  127.         To define the instrument's response to Voice messages, Mode
  128.  messages are sent over the instument's Basic Channel.
  129.  
  130.  
  131. System
  132. System messages are not encoded with channel numbers.
  133.  
  134. There are three types of System messages: Common, Real-Time, and Exclusive.
  135.  
  136.         Common
  137.         Common messages are intended for all units in a system.
  138.  
  139.         Real-Time
  140.         Real-Time messages are intended for all units in a system.
  141.         They contain Status bytes only -- no Data bytes.  Real-Time
  142.  messages may be sent at any time -- even between bytes of a
  143.         message which has a different status.  In such cases the
  144.         Real-Time message is either ignored or acted upon, after which
  145.         the receiving process resumes under the previous status.
  146.  
  147.         Exclusive
  148.         Exclusive messages can contain any number of Data bytes, and
  149.         are terminated by an End of Exclusive (EOX) or any other Status
  150.         byte.  These messages include a Manufacturer's Identification
  151.         (ID) code.  If the receiver does not recognize the ID code, it
  152.         should ignore the ensuing data.
  153.  
  154.         So that other users can fully access MIDI instruments,  manufacturers
  155.         should publish the format of data following their ID code. Only the
  156.  manufacturer can update the format following their ID.
  157.  
  158. DATA TYPES
  159.  
  160. Status Bytes
  161.  
  162. Status bytes are eight-bit binary numbers in which the Most Significant Bit
  163. (MSB) is set (binary 1).  Status bytes serve to identify the message type, that
  164. is, the purpose of the Data bytes which follow the Status byte.
  165.  
  166. Except for Real-Time messages, new Status bytes will always command the
  167. receiver to adopt their status, even if the new Status is received before the
  168. last message was completed.
  169.  
  170.         Running Status
  171.         For Voice and Mode messages only, when a Status byte is
  172.  received and processed, the receiver will remain in that status
  173.    until a different Status byte is received.  Therefore, if the same
  174.         Status byte would be repeated, it may (optionally) be omitted so
  175.         that only the correct number of Data bytes need be sent.  Under
  176.         Running Status, then, a complete message need only consist of
  177.         specified Data bytes sent in the specified order.
  178.  
  179.         The Running Status feature is especially useful for
  180.         communicating long strings of Note On/Off messages, where
  181.         "Note On with Velocity of 0" is used for Note Off.  (A separate
  182.         Note Off Status byte is also available.)
  183.  
  184.         Running Status will be stopped when any other Status byte 
  185.  intervenes, except that Real-Time messges will only interrupt    
  186.  the Running Status temporarily.
  187.  
  188.         Unimplemented Status
  189.         Any status bytes received for functions which the receiver has  not
  190.  implemented should be ignored, and subsequent data bytes ignored.
  191.  
  192.         Undefined Status
  193.         Undefined Status bytes must not be used.  Care should be taken  to
  194.  prevent illegal messages from being sent during power-up or
  195.         power-down.  If undefined Status bytes are received, they     
  196.  should be ignored, as should subsequent Data bytes.
  197.  
  198. Data Bytes
  199. Following the Status byte, there are (except for Real-Time messages) one or
  200. two Data bytes which carry the content of the message.  Data bytes are
  201. eight-bit binary numbers in which the MSB is reset (binary 0).  The number and
  202. range of Data bytes which must follow each Status byte are specified in the
  203. tables which follow.  For each Status byte the correct number of Data bytes
  204. must always be sent.  Inside the receiver, action on the message should wait
  205. until all Data bytes required under the current status are received.  Receivers
  206. should ignore Data bytes which have not been properly preceeded by a valid
  207. Status byte (with the exception of "Running Status," above).
  208.  
  209.  
  210. CHANNEL MODES
  211.  
  212. Synthesizers contain sound generation elements called voices.  Voice
  213. assignment is the algorithmic process of routing Note On/Off data from the
  214. keyboard to the voices so that the musical notes are correctly played with
  215. accurate timing.
  216.  
  217. When MIDI is implemented, the relationship between the sixteen available MIDI
  218. channels and the synthesizer's voice assignment must be defined.  Several Mode
  219. messages are available for this purpose (see Table III).  They are Omni
  220. (On/Off), Poly, and Mono.  Poly and Mono are mutually exclusive, i.e., Poly
  221. Select disables Mono, and vice versa.  Omni, when on, enables the receiver to
  222. receive Voice messages in all voice Channels without discrimination.  When Omni
  223. is off, the receiver will accept Voice messages from only the selected Voice
  224. Channel(s).  Mono, when on, restricts the assignment of Voices to just one
  225. voice per Voice Channel (Monophonic.)  When Mono is off (=Poly On), any number
  226. of voices may be allocated by the Receiver's normal voice assignment algorithm
  227. (Polyphonic.)
  228.  
  229. For a receiver assigned to Basic Channel "N," the four possible modes arising
  230. from the two Mode messages are:
  231.  
  232.  Mode   Omni
  233.  
  234.  
  235. 1       On      Poly    Voice messages are received from all Voice
  236.      channels and assigned to voices polyphonically.
  237.   
  238. 2       On      Mono    Voice messages are received from all Voice
  239.              Channels, and control only one voice,
  240.                     monophonically.
  241.  
  242. 3       Off     Poly    Voice messages are received in Voice channel N
  243.            only, and are assigned to voices polyphonically.
  244.  
  245. 4       Off     Mono    Voice messages are received in Voice channels
  246.            N thru N+M-1, and assigned monophonically to
  247.                  voices 1 thru M, respectively.  The number of                 
  248.  voices M is specified
  249.    by the third byte of the Mono Mode Message.
  250.  
  251. Four modes are applied to transmitters (also assigned to Basic Channel N).
  252. Transmitters with no channel selection capability will normally transmit on
  253. Basic Channel 1 (N=0).
  254.  
  255. Mode    Omni
  256.  
  257.  
  258. 1       On      Poly    All voice messages are transmitted in Channel N.
  259.  
  260. 2       On      Mono    Voice messages for one voice are sent in Channel N.
  261.  
  262. 3       Off     Poly    Voice messages for all voices are sent in Channel N.
  263.  
  264. 4       Off     Mono    Voice messages for voices 1 thru M are
  265.     transmitted in Voice Channels N thru N+M-1,
  266.                         respectively.  (Single voice per channel).
  267.  
  268. A MIDI receiver or transmitter can operate under one and only one mode at a
  269. time.  Usually the receiver and transmitter will be in the same mode.  If a
  270. mode cannot be honored by the receiver, it may ignore the message (and any
  271. subsequent data bytes), or it may switch to an alternate mode (usually Mode 1,
  272. Omni  On/Poly).
  273.  
  274. Mode messages will be recognized by a receiver only when sent in the Basic
  275. Channel to which the receiver has been assigned, regardless of the current
  276. mode.  Voice messages may be received in the Basic Channel and in other
  277. channels (which are all called Voice Channels), which are related specifically
  278. to the Basic channel by the rules above, depending on which mode has been
  279. selected.
  280.  
  281. A MIDI receiver may be assigned to one or more Basic Channels by default or by
  282. user control.  For example, an eight-voice synthesizer might be assigned to
  283. Basic Channel 1 on power-up.  The user could then switch the instrument to be
  284. configured as two four-voice synthesizers, each assigned to its own Basic
  285. Channel.  Separate Mode messages would then be sent to each four-voice
  286. synthesizer, just as if they were physically separate instruments.
  287.  
  288. POWER-UP DEFAULT CONDITIONS
  289.  
  290. On power-up all instruments should default to Mode #1.  Except for Note On/Off
  291. Status, all Voice messages should be disabled.  Spurious or undefined
  292. transmissions must be suppressed.
  293.  
  294.  
  295.  TABLE I
  296.  
  297. SUMMARY OF STATUS BYTES
  298.  
  299.  
  300. STATUS  # OF DATA       DESCRIPTION
  301. D7---D0 BYTES
  302.  
  303. Channel Voice Messages
  304.  
  305. 1000nnnn                2       Note Off event
  306.  
  307. 1001nnnn                2       Note On event (velocity=0: Note Off)
  308.  
  309. 1010nnnn                2       Polyphonic key pressure/after touch
  310.  
  311. 1011nnnn                2       Control change
  312.  
  313. 1100nnnn                1       Program change
  314.  
  315. 1101nnnn                1       Channel pressure/after touch
  316.  
  317. 1110nnnn                2       Pitch bend change
  318.  
  319.  
  320. Channel Mode Messages
  321.  
  322. 1011nnnn                2       Selects Channel Mode
  323.  
  324.  
  325. System Messages
  326.  
  327. 11110000                *****   System Exclusive
  328.  
  329. 11110sss                0 to 2  System Common
  330.  
  331. 11111ttt                0       System Real Time
  332.  
  333.  
  334. NOTES:
  335.         nnnn:   N-1, where N = Channel #,
  336.                         i.e. 0000 is Channel 1.
  337.                         0001 is Channel 2.
  338.                         .
  339.                         .
  340.                         .
  341.                         1111 is Channel 16.
  342.         *****:  0iiiiiii, data, ..., EOX
  343.         iiiiiii:        Identification
  344.         sss:    1 to 7
  345.         ttt:    0 to 7
  346.  
  347.  
  348. TABLE II
  349.  
  350. CHANNEL VOICE MESSAGES
  351.  
  352.  
  353. STATUS  DATA BYTES      DESCRIPTION
  354.  
  355.  
  356. 1000nnnn        0kkkkkkk        Note Off (see notes 1-4)
  357.         0vvvvvvv        vvvvvvv: note off velocity
  358.  
  359. 1001nnnn        0kkkkkkk        Note On (see notes 1-4)
  360.         0vvvvvvv        vvvvvvv - 0: velocity
  361.                         vvvvvvv = 0: note off
  362.  
  363. 1010nnnn        0kkkkkkk        Polyphonic Key Pressure (After-Touch)
  364.         0vvvvvvv        vvvvvvv: pressure value
  365.  
  366. 1011nnnn        0ccccccc        Control Change
  367.         0vvvvvvv        ccccccc: control # (0-121) (see notes 5-8)
  368.                         vvvvvvv: control value
  369.  
  370.                         ccccccc = 122 thru 127: Reserved.
  371.                         (See Table III)
  372.  
  373. 1100nnnn        0ppppppp        Program Change
  374.                         ppppppp: program number (0-127)
  375.  
  376. 1101nnnn        0vvvvvvv        Channel Pressure (After-Touch)
  377.                         vvvvvvv: pressure value
  378.  
  379. 1110nnnn        0vvvvvvv        Pitch Bend Change LSB (see note 10)
  380.         0vvvvvvv        Pitch Bend Change MSB
  381.  
  382.  
  383.  
  384. NOTES:
  385.  
  386. 1. nnnn: Voice Channel # (1-16, coded as defined in Table I notes)
  387.  
  388. 2. kkkkkkk: note # (0 - 127)
  389.       kkkkkkk = 60: Middle C of keyboard
  390.  
  391.     0     12     24     36     48     60     72     84     96     108     120
  392.     127
  393.   -----------------------------------------------------------------
  394.                 ac        c         c          c          c         c
  395. c          c
  396.                          |-------------- piano range -------------------|
  397.  
  398.  
  399. 3. vvvvvvv: key velocity
  400.       A logarithmic scale would be advisable.
  401.  
  402.    0                  1                                      64
  403.                       127
  404.   -------------------------------------------------------------------
  405.   off                 ppp      pp      p     mp      mf      f
  406.           ff        fff
  407.  
  408.    vvvvvvv = 64: in case of no velocity sensors
  409.    vvvvvvv = 0: Note Off, with velocity = 64
  410.  
  411.  
  412. 4.  Any Note On message sent should be balanced by sending a Note Off message
  413. for that note in that channel at some later time.
  414.  
  415.  
  416. 5.  ccccccc: control number
  417.  
  418.  
  419.         ccccccc Description
  420.  
  421.  
  422.         0       Continuous Controller 0 MSB
  423.         1       Continuous Controller 1 MSB (MODULATION BENDER)
  424.         2       Continuous Controller 2 MSB
  425.         3       Continuous Controller 3 MSB
  426.         4-31    Continuous Controllers 4-31 MSB
  427.         32      Continuous Controller 0 LSB
  428.         33      Continuous Controller 1 LSB (MODULATION BENDER)
  429.         34      Continuous Controller 2 LSB
  430.         35      Continuous Controller 3 LSB
  431.         36-63   Continuous Controllers 4-31 LSB
  432.         64-95   Switches (On/Off)
  433.         96-121  Undefined
  434.         122-127 Reserved for Channel Mode messages (see Table III).
  435.  
  436.  
  437. 6.  All controllers are specifically defined by agreement of the MIDI
  438. Manufacturers Association (MMA) and the Japan MIDI Standards Committee (JMSC).
  439. Manufacturers can request throught the MMA or JMSC that logical controllers be
  440. assigned to physical ones as necessary.  The controller allocation table must
  441. be provided in the user's operation manual.
  442.  
  443. 7.  Continuous controllers are divided into Most Significant and Least
  444. Significant Bytes.  If only seven bits of resolution are needed for any
  445. particular controllers, only the MSB is sent.  It is not necessary to send the
  446. LSB.  If more resolution is needed, then both are sent, first the MSB, then the
  447. LSB.  If only the LSB has changed in value, the LSB may be sent without
  448. re-sending the MSB.
  449.  
  450. 8.  vvvvvvv: control value (MSB)
  451.  
  452.      (for controllers)
  453.  
  454.           0
  455.               127
  456.         |-----------------------------------------------------------------|
  457.           min
  458.       max
  459.  
  460.      (for switches)
  461.  
  462.           0
  463.                127
  464. |        -        -        -        -        -        -        -        -
  465.   -        -        -    |
  466.            off
  467.               on
  468.  
  469.         Numbers 1 through 126, inclusive, are ignored.
  470.  
  471.  
  472. 9.  Any messages (e.g. Note On), which are sent successively under the same
  473. status, can be sent without a Status byte until a different Status byte is
  474. needed.
  475.  
  476. 10.  Sensitivity of the pitch bender is selected in the receiver.  Center
  477. position value (no pitch change) is 2000H, which would be transmitted
  478. EnH-00H-40H.
  479. TABLE III
  480.  
  481. CHANNEL MODE MESSAGES
  482.  
  483.  
  484. STATUS  DATA BYTES                   DESCRIPTION
  485.  
  486.  
  487. 1011nnnn        0ccccccc        Mode Messages
  488.         0vvvvvvv
  489.                         ccccccc = 122:  Local Control
  490.                         vvvvvvv = 0, Local Control Off
  491.                         vvvvvvv = 127, Local Control On
  492.  
  493.                         ccccccc = 123:  All Notes Off
  494.                         vvvvvvv = 0
  495.  
  496.                         ccccccc = 124: Omni Mode Off (All Notes Off)
  497.                         vvvvvvv = 0
  498.  
  499.                         ccccccc = 125: Omni Mode On (All Notes Off)
  500.                         vvvvvvv = 0
  501.  
  502.                         ccccccc = 126: Mono Mode On (Poly Mode Off)
  503.                                                    (All Notes Off)
  504.                         vvvvvvv = M, where M is the number of channels.
  505.                         vvvvvvv = 0, the number of channels equals the number 
  506.          of voices in the receiver.
  507.  
  508.                         ccccccc = 127: Poly Mode On (Mono Mode Off)
  509.                         vvvvvvv = 0    (All Notes Off)
  510.  
  511.  
  512. NOTES:
  513.  
  514. 1. nnnn: Basic Channel # (1-16, coded as defined in Table I)
  515.  
  516. 2.  Messages 123 thru 127 function as All Notes Off messages.  They will turn
  517. off all voices controlled by the assigned Basic Channel.  Except for message
  518. 123, All Notes Off, they should not be sent periodically, but only for a
  519. specific purpose.  In no case should they be used in lieu of Note Off commands
  520. to turn off notes which have been previously turned on.  Therefore any All
  521. Notes Off command (123-127) may be ignored by receiver with no possibility of
  522. notes staying on, since any Note On command must have a corresonding specific
  523. Note Off command.
  524.  
  525. 3.  Control Change #122, Local Control, is optionally used to interrupt the
  526. internal control path between the keyboard, for example, and the
  527. sound-generating circuitry.  If 0 (Local Off mesage) is received, the path is
  528. disconnected: the keyboard data goes only to MIDI and the sound-generating
  529. circuitry is controlled only by incoming MIDI data.  If a 7FH (Local On
  530. message) is received, normal operation is restored.
  531.  
  532. 4.  The third byte of "Mono" specifies the number of channels in which
  533. Monophonic Voice messages are to be sent.  This number, "M", is a number
  534. between 1 and 16.  The channel(s) being used, then, will be the current Basic
  535. Channel (=N) thru N+M-1 up to a maximum of 16.  If M=0, this is a special case
  536. directing the receiver to assign all its voices, one per channel, from the
  537. Basic Channel N through 16.
  538.  
  539.  
  540. TABLE IV
  541.  
  542. SYSTEM COMMON MESSAGES
  543.  
  544.  
  545. STATUS  DATA BYTES                   DESCRIPTION
  546.  
  547.  
  548. 11110001                Undefined
  549.  
  550. 11110010                Song Position Pointer
  551.         0lllllll        lllllll: (Least significant)
  552.         0hhhhhhh        hhhhhhh: (Most significant)
  553.  
  554. 11110011        0sssssss        Song Select
  555.                 sssssss: Song #
  556.  
  557. 11110100                Undefined
  558.  
  559. 11110101                Undefined
  560.  
  561. 11110110        none    Tune Request
  562.  
  563. 11110111        none    EOX: "End of System Exclusive" flag
  564.  
  565.  
  566. 1.  Song Position Pointer: Is an internal register which holds the number of
  567. MIDI beats (1 beat = 6 MIDI clocks) since the start of the song.  Normally it
  568. is set to 0 when the START switch is pressed, which starts sequence playback.
  569. It then increments with every sixth MIDI clock receipt, until STOP is pressed.
  570. If CONTINUE is pressed, it continues to increment.  It can be arbitrarily
  571. preset (to a resolution of 1 beat) by the SONG POSITION POINTER message.
  572.  
  573. 2.  Song Select:  Specifies which song or sequence is to be played upon
  574. receipt of a Start (Real-Time) message.
  575.  
  576. 3.  Tune Request:  Used with analog synthesizers to request them to tune their
  577. oscillators.
  578.  
  579. 4.  EOX:  Used as a flag to indicate the end of a System Exclusive
  580. transmission (see Table VI).
  581.  
  582.  
  583. TABLE V
  584.  
  585. SYSTEM REAL TIME MESSAGES
  586.  
  587.  
  588. STATUS  DATA BYTES               DESCRIPTION
  589.  
  590. 11111000                Timing Clock
  591. 11111001                Undefined
  592. 11111010                Start
  593. 11111011                Continue
  594. 11111100                Stop
  595. 11111101                Undefined
  596. 11111110                Active Sensing
  597. 11111111                System Reset
  598.  
  599.  
  600. NOTES:
  601.  
  602. 1.  The System Real Time messages are for synchronizing all of the system in
  603. real time.
  604.  
  605. 2.  The System Real Time messages can be sent at any time.  Any messages which
  606. consist of two or more bytes may be split to insert Real Time messages.
  607.  
  608. 3.  Timing clock (F8H)
  609. The system is synchronized with this clock, which is sent at a rate of 24
  610. clocks/quarter note.
  611.  
  612. 4.  Start (from the beginning of song) (FAH)
  613. This byte is immediately sent when the PLAY switch on the master (e.g.
  614. sequencer or rhythm unit) is pressed.
  615.  
  616. 5.  Continue (FBH)
  617. This is sent when the CONTINUE switch is hit.  A sequence will continue at the
  618. time of the next clock.
  619.  
  620. 6.  Stop (FCH)
  621. This byte is immediately sent when the STOP switch is hit.  It will stop the
  622. sequence.
  623.  
  624. 7.  Active Sensing (FEH)
  625. Use of this message is optional, for either receivers or transmitters.  This
  626. is a "dummy" Status byte that is sent every 300 ms (max), whenever there is no
  627. other activity on MIDI.  The receiver will operate normally if it never
  628. receives FEH.  Otherwise, if FEH is ever received, the receiver will expect to
  629. receive FEH or a transmission of any type every 300 ms (max).  If a period of
  630. 300 ms passes with no activity, the receiver will turn off the voices and
  631. return to normal operation.
  632.  
  633. 8.  System Reset (FFH)
  634. This message initializes all of the system to the condition of just having
  635. turned on power.  The system Reset message should be used sparingly, preferably
  636. under manual command only.  In particular, it should not be sent automatically
  637. on power up.
  638.  
  639.  
  640. TABLE VI
  641.  
  642. SYSTEM EXCLUSIVE MESSAGES
  643.  
  644.  
  645. STATUS  DATA BYTES             DESCRIPTION
  646.  
  647.  
  648. 11110000                Bulk dump etc.
  649.         0iiiiiii        iiiiiii:  identification
  650.              .
  651.         (0*******)
  652.              .  Any number of bytes may be sent here, for any
  653. purpose, as long as they all have a zero in the most significant bit.
  654.         (0*******)
  655.              .
  656.         11110111        EOX: "End of System Exclusive"
  657.  
  658.  
  659. NOTES:
  660.  
  661. 1.  iiiiiii: identification ID (0-127)
  662.  
  663. 2.  All bytes between the System Exclusive Status byte and EOX or the next
  664. Status byte must have zeroes in the MSB.
  665.  
  666. 3.  The ID number can be obtained from the MMA or JMSC.
  667.  
  668. 4.  In no case should other Status or Data bytes (except Real-Time) be
  669. interleaved with System Exclusive, regardless of whether or not the ID code is
  670. recognized.
  671.  
  672. 5.  EOX or any other Status byte, except Real-Time, will terminate a System
  673. Exclusive message, and should be sent immediately at its conclusion.
  674.  
  675. **** END of Spec. ****
  676.  
  677.  
  678. --
  679. Thanks,
  680.                     Garry Elliott
  681.           gwe@aplvax.jhuapl.edu (128.244.176.104)
  682.           in Maryland
  683.  
  684.